/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package speelotheek.views;
import javax.swing.GroupLayout.Alignment;
import javax.swing.GroupLayout;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.LayoutStyle.ComponentPlacement;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import speelotheek.models.Lid;
import speelotheek.models.Speelgoed;
import speelotheek.models.Uitlening;

/**
 *
 * @author mabarto
 */
public class ReturnInfo extends JDialog {

    /**
	 * 
	 */
	private static final long serialVersionUID = 5328546916208163608L;
	
	private DateFormat nl = new SimpleDateFormat("yyyy-MM-dd");
	private Date todayDate = new Date();
	private Calendar calendar = Calendar.getInstance();
	
	private Uitlening uitlening;
	
	/**
     * Creates new form ReturnInfo
     */
    public ReturnInfo(String code) {
    	setInitWaarden();
    	leesWaarden(code);
    }
    
    public ReturnInfo()
    {
    	setInitWaarden();
    }
    
    private void leesWaarden(String code)
    {
    	uitlening = Uitlening.getUitlening(code);
    }
    
    private void setInitWaarden() {
    	setBounds(100, 100, 350, 435);
    	setTitle("Speelgoed - Innemen");
    	setLocationRelativeTo(null); // Dialog scherm in het midden
    	setModal(true);
    	initComponents();
    
    	uitlening = new Uitlening();
    	
    	// Zet de uitleendatum automatisch op de dag vandaag
    	innamedatumField.setText(nl.format(todayDate));
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    private void initComponents() {
        innamedatumLabel = new javax.swing.JLabel();
        innamedatumField = new javax.swing.JTextField();
        bijzonderhedenLabel = new javax.swing.JLabel();
        bijzonderhedenList = new javax.swing.JScrollPane();
        bijzonderhedenField = new javax.swing.JTextArea();
        innameButton = new javax.swing.JButton();
   
        innamedatumLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        innamedatumLabel.setText("Innamedatum:");
        
        bijzonderhedenLabel.setText("Bijzonderheden");

        bijzonderhedenField.setColumns(20);
        bijzonderhedenField.setRows(5);
        bijzonderhedenList.setViewportView(bijzonderhedenField);

        innameButton.setText("Innemen");
        innameButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                innameButtonActionPerformed(evt);
            }
        });
        
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
        	layout.createParallelGroup(Alignment.LEADING)
        		.addGroup(Alignment.TRAILING, layout.createSequentialGroup()
        			.addContainerGap()
        			.addGroup(layout.createParallelGroup(Alignment.TRAILING)
        				.addComponent(bijzonderhedenList, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
        				.addComponent(bijzonderhedenLabel, Alignment.LEADING)
        				.addGroup(Alignment.LEADING, layout.createSequentialGroup()
            					.addGroup(layout.createParallelGroup(Alignment.LEADING, false)
                						.addComponent(innamedatumLabel, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                					.addPreferredGap(ComponentPlacement.RELATED)
                					.addGroup(layout.createParallelGroup(Alignment.LEADING)
                						.addComponent(innamedatumField, 134, 134, 134)))
        				.addComponent(innameButton, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE))
        			.addGap(75))
        );
        layout.setVerticalGroup(
        	layout.createParallelGroup(Alignment.TRAILING)
        		.addGroup(Alignment.LEADING, layout.createSequentialGroup()
        			.addContainerGap()
        			.addPreferredGap(ComponentPlacement.UNRELATED)
        			.addGroup(layout.createParallelGroup(Alignment.BASELINE)
        				.addComponent(innamedatumLabel)
        				.addComponent(innamedatumField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
        			.addPreferredGap(ComponentPlacement.UNRELATED)
        			.addComponent(bijzonderhedenLabel)
        			.addPreferredGap(ComponentPlacement.RELATED)
        			.addComponent(bijzonderhedenList, GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE)
        			.addPreferredGap(ComponentPlacement.UNRELATED)
        			.addComponent(innameButton)
        			.addContainerGap())
        );
        getContentPane().setLayout(layout);
    }// </editor-fold>//GEN-END:initComponents
    
    private void innameButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SpeelgoedButtonActionPerformed    	
    	// Controle of speelgoed is geselecteerd
    	if (uitlening != null)
    	{
    	Speelgoed eenSpeelgoed = uitlening.getSpeelgoed();
    	if (eenSpeelgoed != null)
    	{
    		// Controleren of het speelgoed is uitgeleend?
    		if (eenSpeelgoed.isUitgeleend())
    		{
    			// Controleer de innamedatum en zet in uitlening
    			try {
    				Date innamedatum = nl.parse(innamedatumField.getText());
    				uitlening.setInnamedatum(innamedatum); 
    			} catch (ParseException ex) {
    				JOptionPane.showMessageDialog(null, "inname datum moet van de vorm dd-MM-yyyy zijn", "error", JOptionPane.ERROR_MESSAGE);
    				System.out.println("Inname: save: " + ex.getMessage());
    			}
    	
    			// Zet bijzonderheden in uitlening
    			uitlening.setBijzonderheden(bijzonderhedenField.getText());

    			if (uitlening.save()) {
    				
					if (uitlening.BerekenBoete() > 0.0)
					{
						JOptionPane.showMessageDialog(null, "Speelgoed te laat, de boete is:" + String.format("%.2f", uitlening.BerekenBoete()));
					}
					
    				//en sluit het venster  
    				this.dispose();
    			} else {
    				System.out.println("Inname: opslaan: " + "probleem bij opslaan van " + uitlening.toString());
    			}
    		}
    		else
    		{
    			JOptionPane.showMessageDialog(null, "Speelgoed is niet uitgeleend.", "error", JOptionPane.ERROR_MESSAGE);    			
    		}
		}
    	} else 
    	{
   			JOptionPane.showMessageDialog(null, "Speelgoed is niet uitgeleend.", "error", JOptionPane.ERROR_MESSAGE);    			
   		}

    }//GEN-LAST:event_uitleenButtonActionPerformed
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JTextArea bijzonderhedenField;
    private javax.swing.JLabel bijzonderhedenLabel;
    private javax.swing.JScrollPane bijzonderhedenList;
    private javax.swing.JTextField innamedatumField;
    private javax.swing.JLabel innamedatumLabel;
    private javax.swing.JButton innameButton;
    // End of variables declaration//GEN-END:variables
}
